home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / il / ilEltRset.z / ilEltRset
Encoding:
Text File  |  2002-10-03  |  15.9 KB  |  397 lines

  1.  
  2.  
  3.  
  4. iiiillllEEEEllllttttRRRRsssseeeetttt((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllEEEEllllttttRRRRsssseeeetttt((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      iiiillllEEEEllllttttRRRRsssseeeetttt - ELT Reduced Resolution Data Set (R-set)
  10.  
  11.  
  12. IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM
  13.      ilWatchedObject
  14.  
  15.  
  16. HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
  17.      #include <il/ilEltRset.h>
  18.  
  19.  
  20. CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  21.      Typical Electronic Light Table (ELT) applications specify the viewed
  22.      image as a multi-resolution data set. This data set consists of the
  23.      original or base image and a collection of minified copies of this image.
  24.      The components of this multi-resolution data set are called Reduced
  25.      Resolution Data Sets or R-sets. Each R-set consists of the an image and
  26.      the parameters that describe that image.
  27.  
  28.      The iiiillllEEEEllllttttRRRRsssseeeetttt class encapsulates all of the parameters needed to fully
  29.      specify a Reduced Resolution Data Set (R-set) to an iiiillllEEEEllllttttIIIImmmmgggg. One
  30.      parameter is the input image associated with the R-set. This image can be
  31.      any iiiillllIIIImmmmaaaaggggeeee, but it is assumed that the input image will be related to
  32.      the original image (e.g., a minified copy).
  33.  
  34.      The second parameter used to define the R-set is the scale range over
  35.      which the R-set is valid. For example, the original image might have a
  36.      scale range of .5 to 8. This indicates to an iiiillllEEEEllllttttRRRRsssseeeettttSSSSeeeelllleeeeccccttttoooorrrr that the
  37.      image can be used whenever the effective scale for the viewed image is
  38.      between that range.
  39.  
  40.      The next two parameters define the warping of the image from and to the
  41.      rectified image. The iiiillllEEEEllllttttIIIImmmmgggg class defines two warping operations on
  42.      images, a rectification warp and a view warp. The iiiillllEEEEllllttttRRRRsssseeeetttt specifies the
  43.      rectification warp, while the iiiillllEEEEllllttttIIIImmmmgggg manages the view warp. The
  44.      rectification warp is an output-driven warp (see iiiillllWWWWaaaarrrrppppIIIImmmmgggg) and defines
  45.      the mapping of the rectified image onto the input image. The application
  46.      may also specify the inverse warp if available. If not specified, the
  47.      iiiillllEEEEllllttttIIIImmmmgggg will compute the inverse when needed.
  48.  
  49.      The iiiillllEEEEllllttttRRRRsssseeeetttt allows for the specification of different warps for each
  50.      R-set in the multi-resolution data set. In many cases this warp will
  51.      simply include the scale changes needed to map the rectified image onto
  52.      the minified image.
  53.  
  54.      The iiiillllEEEEllllttttRRRRsssseeeetttt includes two indicators that identify the R-set which
  55.      contains the original or base image and whether the R-set is enabled for
  56.      use. This information is later used by the iiiillllEEEEllllttttIIIImmmmgggg class.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. iiiillllEEEEllllttttRRRRsssseeeetttt((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllEEEEllllttttRRRRsssseeeetttt((((3333))))
  71.  
  72.  
  73.  
  74.      Finally, the iiiillllEEEEllllttttRRRRsssseeeetttt class allows the application to bind some
  75.      application specific data to the R-set object. This data is specified as
  76.      a pointer to some application allocated data area. This data may be used
  77.      to store information about the R-set for use by the
  78.      iiiillllEEEEllllttttRRRRsssseeeettttCCCChhhhaaaannnnggggeeeeMMMMeeeetttthhhhooooddddCCCCaaaallllllllbbbbaaaacccckkkk or iiiillllEEEEllllttttRRRRsssseeeettttCCCChhhhaaaannnnggggeeeeFFFFuuuunnnnccccttttiiiioooonnnnCCCCaaaallllllllbbbbaaaacccckkkk (see
  79.      iiiillllEEEEllllttttIIIImmmmgggg(3) for more information). The application may specify that that
  80.      the iiiillllEEEEllllttttRRRRsssseeeetttt adopt the data, freeing it when the object is deleted. By
  81.      default, new iiiillllEEEEllllttttRRRRsssseeeetttt objects will not adopt the data pointer. It is the
  82.      responsibility of the application to ensure that the data area is not
  83.      adopted by multiple iiiillllEEEEllllttttRRRRsssseeeetttt objects and not deleted while still
  84.      referenced by another R-set.
  85.  
  86. CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY
  87.      CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrr
  88.  
  89.           ilEltRset(ilImage* img, float minZoom, float maxZoom,
  90.                     const ilWarp* warp, int isBaseImg,
  91.                     const ilWarp* inverseWarp)
  92.           ilEltRset(ilImage* img, float minZoom, float maxZoom,
  93.                     const ilWarp* warp, int isBaseImg, int enable=TRUE,
  94.                     void* userData=NULL, int adoptUserData=FALSE,
  95.                     const ilWarp* inverseWarp=NULL)
  96.  
  97.      GGGGeeeetttt////sssseeeetttt mmmmeeeetttthhhhooooddddssss
  98.  
  99.           ilImage* getImg()
  100.           void setEnable(int enable=TRUE)
  101.           int isEnabled()
  102.           void setZoomRange(float min, float max)
  103.           void getZoomRange(float& min, float& max)
  104.           void setMinZoom(float min)
  105.           float getMinZoom()
  106.           void setMaxZoom(float max)
  107.           float getMaxZoom()
  108.           void setWarp(const ilWarp* newWarp,
  109.                        const ilWarp* newInverseWarp=NULL)
  110.           const ilWarp* getWarp()
  111.           const ilWarp* getInverseWarp()
  112.           int isBaseImg()
  113.           void setUserData(void* newUserData, int adoptUserData=FALSE)
  114.           void* getUserData()
  115.           void rsetChanged()  _p_r_o_t_e_c_t_e_d
  116.  
  117.  
  118.  
  119. FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
  120.      iiiillllEEEEllllttttRRRRsssseeeetttt(((())))
  121.  
  122.           ilEltRset(ilImage* img, float minZoom, float maxZoom,
  123.                     const ilWarp* warp, int isBaseImg,
  124.                     const ilWarp* inverseWarp)
  125.           ilEltRset(ilImage* img, float minZoom, float maxZoom,
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. iiiillllEEEEllllttttRRRRsssseeeetttt((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllEEEEllllttttRRRRsssseeeetttt((((3333))))
  137.  
  138.  
  139.  
  140.                     const ilWarp* warp, int isBaseImg, int enable=TRUE,
  141.                     void* userData=NULL, int adoptUserData=FALSE,
  142.                     const ilWarp* inverseWarp=NULL)
  143.  
  144.  
  145.           Construct a new ELT R-set with the input image given by _i_m_g. The
  146.           valid scale range for this image is specified as any scale greater
  147.           than or equal to _m_i_n_Z_o_o_m and less than _m_a_x_Z_o_o_m. The output-driven
  148.           rectification warp is provided in _w_a_r_p and its inverse is given by
  149.           _i_n_v_e_r_s_e_W_a_r_p. If the input image is the original source image then
  150.           the _i_s_B_a_s_e_I_m_g must be set to _T_R_U_E.  The R-set is enabled for
  151.           selection via the _e_n_a_b_l_e parameter. Finally, a pointer to
  152.           application specific data can be given in _u_s_e_r_D_a_t_a. If the
  153.           _a_d_o_p_t_U_s_e_r_d_a_t_a flag is set to _T_R_U_E, then the new iiiillllEEEEllllttttRRRRsssseeeetttt object
  154.           will delete the storage associated with _u_s_e_r_D_a_t_a.
  155.  
  156.      ggggeeeettttIIIImmmmgggg(((())))
  157.  
  158.           ilImage* getImg()
  159.  
  160.  
  161.           Returns a pointer to the input image associated with this R-set.
  162.  
  163.      ggggeeeettttIIIInnnnvvvveeeerrrrsssseeeeWWWWaaaarrrrpppp(((())))
  164.  
  165.           const ilWarp* getInverseWarp()
  166.  
  167.  
  168.           Returns a pointer to the inverse warp that maps the input image on
  169.           to the rectified image.
  170.  
  171.      ggggeeeettttMMMMaaaaxxxxZZZZoooooooommmm(((())))
  172.  
  173.           float getMaxZoom()
  174.  
  175.  
  176.           Returns the upper limit on the valid scale range for this R-set.
  177.  
  178.      ggggeeeettttMMMMiiiinnnnZZZZoooooooommmm(((())))
  179.  
  180.           float getMinZoom()
  181.  
  182.  
  183.           Returns the lower limit on the valid scale range for this R-set.
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. iiiillllEEEEllllttttRRRRsssseeeetttt((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllEEEEllllttttRRRRsssseeeetttt((((3333))))
  203.  
  204.  
  205.  
  206.      ggggeeeettttUUUUsssseeeerrrrDDDDaaaattttaaaa(((())))
  207.  
  208.           void* getUserData()
  209.  
  210.  
  211.           Returns the pointer to the application specific data. It is up to
  212.           the call to correctly cast the returned pointer to the appropriate
  213.           type.
  214.  
  215.      ggggeeeettttWWWWaaaarrrrpppp(((())))
  216.  
  217.           const ilWarp* getWarp()
  218.  
  219.  
  220.           Returns the output-driven rectification warp that maps the rectified
  221.           image on to the input image.
  222.  
  223.      ggggeeeettttZZZZoooooooommmmRRRRaaaannnnggggeeee(((())))
  224.  
  225.           void getZoomRange(float& min, float& max)
  226.  
  227.  
  228.           Returns the lower and upper limits on the valid scale range for this
  229.           R-set.
  230.  
  231.      iiiissssBBBBaaaasssseeeeIIIImmmmgggg(((())))
  232.  
  233.           int isBaseImg()
  234.  
  235.  
  236.           Returns the indicator that flags the input image of this R-set as
  237.           the base or original image in multi-resolution data set.
  238.  
  239.      iiiissssEEEEnnnnaaaabbbblllleeeedddd(((())))
  240.  
  241.           int isEnabled()
  242.  
  243.  
  244.           Returns an indication that this R-set is available for use by the
  245.           associated iiiillllEEEEllllttttIIIImmmmgggg.
  246.  
  247.      rrrrsssseeeettttCCCChhhhaaaannnnggggeeeedddd(((())))
  248.  
  249.           void rsetChanged()  _p_r_o_t_e_c_t_e_d
  250.  
  251.  
  252.           This method is called whenever any parameter of the R-set is
  253.           changed. This method flags this change to the associated iiiillllEEEEllllttttIIIImmmmgggg,
  254.           which will reset itself if needed.
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. iiiillllEEEEllllttttRRRRsssseeeetttt((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllEEEEllllttttRRRRsssseeeetttt((((3333))))
  269.  
  270.  
  271.  
  272.      sssseeeettttEEEEnnnnaaaabbbblllleeee(((())))
  273.  
  274.           void setEnable(int enable=TRUE)
  275.  
  276.  
  277.           This method alters the enable state for this R-set.
  278.  
  279.      sssseeeettttMMMMaaaaxxxxZZZZoooooooommmm(((())))
  280.  
  281.           void setMaxZoom(float max)
  282.  
  283.  
  284.           This method changes the upper limit of the valid scale range for
  285.           this R-set.
  286.  
  287.      sssseeeettttMMMMiiiinnnnZZZZoooooooommmm(((())))
  288.  
  289.           void setMinZoom(float min)
  290.  
  291.  
  292.           This method changes the lower limit of the valid scale range for
  293.           this R-set.
  294.  
  295.      sssseeeettttUUUUsssseeeerrrrDDDDaaaattttaaaa(((())))
  296.  
  297.           void setUserData(void* newUserData, int adoptUserData=FALSE)
  298.  
  299.  
  300.           This method sets the application specific data pointer to that given
  301.           by _n_e_w_U_s_e_r_D_a_t_a. If application specific data has been previously
  302.           specified to this R-set, and it was adopted, the old data will be
  303.           deleted before applying the change. The pointer given by _n_e_w_U_s_e_r_D_a_t_a
  304.           will be adopted if indicated by a _T_R_U_E setting in _a_d_o_p_t_U_s_e_r_D_a_t_a.
  305.  
  306.      sssseeeettttWWWWaaaarrrrpppp(((())))
  307.  
  308.           void setWarp(const ilWarp* newWarp,
  309.                        const ilWarp* newInverseWarp=NULL)
  310.  
  311.  
  312.           This method sets the warp and inverse warp for this R-set to _n_e_w_W_a_r_p
  313.           and _n_e_w_I_n_v_e_r_s_e_W_a_r_p respectively. The R-set object will copy any
  314.           given warps to manage any changes to those warps. Either or both
  315.           warp may be _N_U_L_L to clear the associated warp in the R-set.
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. iiiillllEEEEllllttttRRRRsssseeeetttt((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllEEEEllllttttRRRRsssseeeetttt((((3333))))
  335.  
  336.  
  337.  
  338.      sssseeeettttZZZZoooooooommmmRRRRaaaannnnggggeeee(((())))
  339.  
  340.           void setZoomRange(float min, float max)
  341.  
  342.  
  343.           This methods sets the scale range over which the input image is
  344.           valid.
  345.  
  346. IIIINNNNHHHHEEEERRRRIIIITTTTEEEEDDDD MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNNSSSS
  347.    IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllWWWWaaaattttcccchhhheeeeddddOOOObbbbjjjjeeeecccctttt
  348.      addWatchCallback(), doWatchCallbacks(), removeWatchCallback()
  349.  
  350.  
  351. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  352.      ilEltImg, ilEltRsetSelector, ilWarp
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.